The field of the present invention relates to data exchange in communications systems, and particularly, relates to reductions in the data exchange among elements in a communication systems without sacrificing the accuracy of the data.
The recipient of a letter generally may gain information as to the identity of the sender without opening the letter simply by checking the return address if it is included on the envelope. In telecommunications, gaining information as to the identity of a calling party without answering the call is not so simple. The recipient of a telephone call generally may gain information as to the identity of a calling party if the recipient subscribes to a caller identification (CallerID) feature or service. Conveniently, the CallerID feature displays a directory number, a name, or other information on the display of the communications unit the subscriber may be using. To implement features such as the CallerID feature, a service provider may set up a database including information correlated respectively to directory numbers served by the service provider. For example, a service provider may set up a database to include all of the directory numbers that are served by that service provider. With respect to each directory number, the service provider may include correlative information such as a name, message, or other data to provide for display on the subscriber""s unit when the subscriber receives a call from a calling party having a directory number in the service provider""s database. The database including the directory numbers served by the service provider and the correlative information often is referred to as a xe2x80x9ccalling name databasexe2x80x9d, and more particularly, a xe2x80x9cnativexe2x80x9d calling name database or native database because the database includes directory numbers for subscribers who are xe2x80x9cnativexe2x80x9d to (i.e. served by) the service provider. Typically, a native database is included in a network element such as a service control point (SCP) in the network or system of the service provider.
The native database works well for implementing features such as CallerID when both the recipient of the call and the calling party are served by the same service provider. When the call reaches a service switching point (SSP) serving the recipient, the processing of the call is paused in response to the presence of a terminating attempt trigger (TAT) associated with the directory number of the recipient. The SSP queries another network element such as the SCP for instructions. In response to the query, the SCP checks information associated with the directory number of the recipient and finds the directory number is to be provided with the CallerID feature. The SCP then checks the native database for the correlative information associated with the calling line number from which the call originated. Given that the calling party is served by the service provider, the native database includes the calling line number from which the call originated. The native directory also includes correlative information for the calling line number. The SCP transmits the correlative information to the SSP for further routing to and display on the recipient""s communications unit.
The native database is insufficient for implementing features such as CallerID when the calling party is not served by the same service provider as the recipient of the call. The native database is insufficient because it typically does not include directory numbers and correlative information other than for those directory numbers the service provider serves. To obtain correlative information about a calling line number that is not served by the service provider serving the recipient, the service provider often must consult with the service provider serving the calling party, which is referred to herein as the foreign service provider. In particular, a database of the foreign service provider may be consulted. To the foreign service provider, the consulted database is a native database. But from the perspective of the consulting service provider, the database is a foreign database, as it is referred to herein.
Generally, a foreign service provider charges a fee for responding to each query that is received from another service provider. These fees add up, and thus, service providers seek ways in which to minimize the number of queries routed to foreign databases.
One way to completely minimize the number of queries is to avoid having to make them. For example, with respect to the CallerID feature, a service provider may add correlative information to its native database or may add another database with such correlative information so that the service provider is in possession of all necessary information relating to directory numbers that may be associated with calls to subscribers of the service provider. This solution is impractical at least because it may be impossible for a service provider to obtain and store all the necessary directory numbers and correlative information. This solution also may be unacceptable unless the service provider receives regular and timely updates of the correlative information. If the updates are not received in a timely fashion, the service provider may provide out-of-date information as CallerID information to its subscribers. The provision of out-of-date information may result in a subscriber""s dissatisfaction with the CallerID feature and a cancellation of his or her subscription. In addition, this solution is relatively expensive in that it requires the service provider to obtain, store, and update a large number of directory numbers and a large amount of correlative information.
Accordingly, there is a need for a system that obtains information from foreign databases in a cost effective and a timely manner. There is also a need for a system that obtains such information without sacrificing or only minimally affecting the accuracy of the information. There is further a need for a system that obtains such information in a manner whose particulars as to cost effectiveness, timeliness, and accuracy may be selected by the service provider. In addition, there is a need for a system that obtains such information and dynamically changes the manner in which it obtains additional information based on the information already obtained.
Generally stated, the present invention includes exemplary embodiments that intercept queries and responses between network elements and a foreign network element. As responses from the foreign network element are intercepted, the data from the response is stored so as to build a local cache of retrieved data. In response to the interception of a query, a check is made to determine whether the data sought by the query is stored in the local cache. If the data is stored in the local cache, an integrity check(s) with respect to the data may be carried out. The integrity check(s) may be implemented so that the data in the local cache has a better probability of being substantially the same as the corresponding data in the foreign network element. If the integrity check is passed, then the data is returned to the appropriate network element without the query having been transmitted to or the data obtained from the foreign network element.
If the integrity check is not passed, or if the data is not stored in the local cache, then the data is obtained from the foreign network element. Advantageously, the data obtained from the foreign network element is added to the local cache so that a subsequent query for the same data does not have to be transmitted to the foreign network element. Rather, if the integrity check is passed, the data is supplied from the local cache.
Advantageously, the present invention provides methods and elements that respond to queries for data from network elements by providing the data or by obtaining the data from a foreign network element in an effective and a timely manner. The data is obtained and/or supplied without sacrificing or only minimally affecting the accuracy of the data. The methods and elements of the present invention obtain and/or supply the data in a manner whose particulars as to cost effectiveness, timeliness, and accuracy may be selected by the user or operator. In addition, the manner of obtaining and/or supplying the data is carried out in a dynamic manner based on data already obtained and stored in a local cache.
That the present invention and the exemplary embodiments thereof overcome the problems and drawbacks set forth above and accomplish the objects of the invention set forth herein will become apparent from the detailed description of the exemplary embodiments, which follows.